package com.shelpe.services.sinbad.dao;

import com.shelpe.services.sinbad.model.RptCustomer;
import com.shelpe.services.sinbad.model.RptCustomerExample;
import com.shelpe.services.sinbad.model.RptCustomerKey;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface RptCustomerMapper {
	int countByExample(RptCustomerExample example);

	int deleteByExample(RptCustomerExample example);

	int deleteByPrimaryKey(RptCustomerKey key);

	int insert(RptCustomer record);

	int insertSelective(RptCustomer record);

	List<RptCustomer> selectByExample(RptCustomerExample example);

	List<RptCustomer> selectStatByExample(RptCustomerExample example);

	RptCustomer selectSumsByExample(RptCustomerExample example);

	RptCustomer selectByPrimaryKey(RptCustomerKey key);

	int updateByExampleSelective(@Param("record") RptCustomer record, @Param("example") RptCustomerExample example);

	int updateByExample(@Param("record") RptCustomer record, @Param("example") RptCustomerExample example);

	int updateByPrimaryKeySelective(RptCustomer record);

	int updateByPrimaryKey(RptCustomer record);

	RptCustomer selectUserMetricSum(@Param("user_id") long userID, @Param("from") String from, @Param("to") String to,
			@Param("sources") String sources);

	List<RptCustomer> selectUserTrendSum(@Param("user_id") long userID, @Param("from") String from,
			@Param("to") String to, @Param("lower_limit") int lower, @Param("upper_limit") int upper);

}